/*!-----------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * monaco-languages version: 1.6.0(858705e74270e53559a241fdee187e7a6ae53b23)
 * Released under the MIT license
 * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md
 *-----------------------------------------------------------------------------*/
define("vs/basic-languages/r/r", ["require", "exports"], function (e, o) {
  "use strict";
  Object.defineProperty(o, "__esModule", { value: !0 }),
    (o.conf = {
      comments: { lineComment: "#" },
      brackets: [
        ["{", "}"],
        ["[", "]"],
        ["(", ")"],
      ],
      autoClosingPairs: [
        { open: "{", close: "}" },
        { open: "[", close: "]" },
        { open: "(", close: ")" },
        { open: '"', close: '"' },
      ],
      surroundingPairs: [
        { open: "{", close: "}" },
        { open: "[", close: "]" },
        { open: "(", close: ")" },
        { open: '"', close: '"' },
      ],
    }),
    (o.language = {
      defaultToken: "",
      tokenPostfix: ".r",
      roxygen: [
        "@param",
        "@return",
        "@name",
        "@rdname",
        "@examples",
        "@include",
        "@docType",
        "@S3method",
        "@TODO",
        "@aliases",
        "@alias",
        "@assignee",
        "@author",
        "@callGraphDepth",
        "@callGraph",
        "@callGraphPrimitives",
        "@concept",
        "@exportClass",
        "@exportMethod",
        "@exportPattern",
        "@export",
        "@formals",
        "@format",
        "@importClassesFrom",
        "@importFrom",
        "@importMethodsFrom",
        "@import",
        "@keywords",
        "@method",
        "@nord",
        "@note",
        "@references",
        "@seealso",
        "@setClass",
        "@slot",
        "@source",
        "@title",
        "@usage",
      ],
      constants: [
        "NULL",
        "FALSE",
        "TRUE",
        "NA",
        "Inf",
        "NaN ",
        "NA_integer_",
        "NA_real_",
        "NA_complex_",
        "NA_character_ ",
        "T",
        "F",
        "LETTERS",
        "letters",
        "month.abb",
        "month.name",
        "pi",
        "R.version.string",
      ],
      keywords: [
        "break",
        "next",
        "return",
        "if",
        "else",
        "for",
        "in",
        "repeat",
        "while",
        "array",
        "category",
        "character",
        "complex",
        "double",
        "function",
        "integer",
        "list",
        "logical",
        "matrix",
        "numeric",
        "vector",
        "data.frame",
        "factor",
        "library",
        "require",
        "attach",
        "detach",
        "source",
      ],
      special: [
        "\\n",
        "\\r",
        "\\t",
        "\\b",
        "\\a",
        "\\f",
        "\\v",
        "\\'",
        '\\"',
        "\\\\",
      ],
      brackets: [
        { open: "{", close: "}", token: "delimiter.curly" },
        { open: "[", close: "]", token: "delimiter.bracket" },
        { open: "(", close: ")", token: "delimiter.parenthesis" },
      ],
      tokenizer: {
        root: [
          { include: "@numbers" },
          { include: "@strings" },
          [/[{}\[\]()]/, "@brackets"],
          { include: "@operators" },
          [/#'/, "comment.doc", "@roxygen"],
          [/(^#.*$)/, "comment"],
          [/\s+/, "white"],
          [/[,:;]/, "delimiter"],
          [/@[a-zA-Z]\w*/, "tag"],
          [
            /[a-zA-Z]\w*/,
            {
              cases: {
                "@keywords": "keyword",
                "@constants": "constant",
                "@default": "identifier",
              },
            },
          ],
        ],
        roxygen: [
          [
            /@\w+/,
            {
              cases: {
                "@roxygen": "tag",
                "@eos": { token: "comment.doc", next: "@pop" },
                "@default": "comment.doc",
              },
            },
          ],
          [
            /\s+/,
            {
              cases: {
                "@eos": { token: "comment.doc", next: "@pop" },
                "@default": "comment.doc",
              },
            },
          ],
          [/.*/, { token: "comment.doc", next: "@pop" }],
        ],
        numbers: [
          [/0[xX][0-9a-fA-F]+/, "number.hex"],
          [/-?(\d*\.)?\d+([eE][+\-]?\d+)?/, "number"],
        ],
        operators: [
          [/<{1,2}-/, "operator"],
          [/->{1,2}/, "operator"],
          [/%[^%\s]+%/, "operator"],
          [/\*\*/, "operator"],
          [/%%/, "operator"],
          [/&&/, "operator"],
          [/\|\|/, "operator"],
          [/<</, "operator"],
          [/>>/, "operator"],
          [/[-+=&|!<>^~*/:$]/, "operator"],
        ],
        strings: [
          [/'/, "string.escape", "@stringBody"],
          [/"/, "string.escape", "@dblStringBody"],
        ],
        stringBody: [
          [
            /\\./,
            { cases: { "@special": "string", "@default": "error-token" } },
          ],
          [/'/, "string.escape", "@popall"],
          [/./, "string"],
        ],
        dblStringBody: [
          [
            /\\./,
            { cases: { "@special": "string", "@default": "error-token" } },
          ],
          [/"/, "string.escape", "@popall"],
          [/./, "string"],
        ],
      },
    });
});
